On many computing platforms (e.g., the ANDROID platform), shared libraries may be used to provide various resources and functionalities to multiple programs. A shared library may use various application programming interface (API) methods to expose the resources and functionalities that it provides to programs, and a program that loads a shared library may access a resource or functionality provided by the shared library by calling the API method that exposes the resource or functionality. In some cases, a provider of a shared library may wish to limit access to certain API methods to only authorized callers.
Using traditional methods, a provider of a shared library may be able to limit access to an API method to a set of authorized programs. Unfortunately, limiting access to an API method to a set of authorized programs may be problematic in a variety of situations. For example, some computing platforms may enable an unauthorized program to cause an authorized program to access an API method of a shared library on behalf of the unauthorized program. As a result, a call to an API method that is initiated by the unauthorized program may appear to be from the authorized program and allowed by the shared library. In other situations, an authorized program may be injected with malicious code. As a result, a call to an API method that is initiated by the malicious code may appear to be from the authorized program and allowed by the shared library. Accordingly, the instant disclosure identifies and addresses a need for additional and improved systems and methods for authorizing attempts to access shared libraries.